/*
 * BoyerMoore.h
 *
 *  Created on: 19-06-2013
 *      Author: Krzychu
 */

#ifndef BOYERMOORE_H_
#define BOYERMOORE_H_

#include "IAlgorithm.h"

class BoyerMoore: public virtual IAlgorithm
{
public:
	BoyerMoore();
	virtual ~BoyerMoore();
	virtual searchResult execute(std::string text, std::string pattern);
	virtual std::string getName();
protected:
	int* pre_bad_character_shift(std::string pattern);
	int* pre_good_suffix_shift(std::string pattern);
	int* pre_suffixes(std::string pattern);
};

#endif /* BOYERMOORE_H_ */
